package com.pinyoumei.app.application;

import android.content.Context;
import android.support.multidex.MultiDex;

import com.pinyoumei.app.utils.Utils;
import com.baidu.android.pushservice.PushConstants;
import com.baidu.android.pushservice.PushManager;
import com.lzy.okgo.OkGo;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator;
import com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreator;
import com.scwang.smartrefresh.layout.api.RefreshFooter;
import com.scwang.smartrefresh.layout.api.RefreshHeader;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.scwang.smartrefresh.layout.header.ClassicsHeader;

import io.realm.Realm;
import io.realm.RealmConfiguration;


/**
 * Application类 安卓应用启动的第一个类一般做初始化
 */
public class Application extends android.app.Application {
    //static 代码段可以防止内存泄露
    //下拉刷新全局定义头布局跟尾布局的模式
    public static Context mContext;

    static {
        //设置全局的Header构建器
        SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
            @Override
            public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
                //layout.setPrimaryColorsId(android.R.color.white, android.R.color.white);//全局设置主题颜色
                return new ClassicsHeader(context).setTextSizeTime(10).setTextSizeTitle(14).setDrawableArrowSize(14).setDrawableSize(15);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header，默认是 贝塞尔雷达Header
            }
        });
        //设置全局的Footer构建器
        SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
            @Override
            public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
                //指定为经典Footer，默认是 BallPulseFooter
                return new ClassicsFooter(context).setTextSizeTitle(14).setDrawableSize(15);
            }
        });
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        //分包框架的初始化
        MultiDex.install(base);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = this;

        //初始化吐司工具类的Context
        Utils.init(this);
        //初始化Realm数据库以及一些基本配置
        Realm.init(this);
        RealmConfiguration config = new RealmConfiguration.Builder()
                .name("Realm_BaiShua")
                .deleteRealmIfMigrationNeeded()
                .build();
        Realm.setDefaultConfiguration(config);

        OkGo.getInstance().init(this);






        PushManager.startWork(getApplicationContext(),
                PushConstants.LOGIN_TYPE_API_KEY,
                "vwHspopOyeuPlCHcdHbdbnCt");
    }

}
